﻿Imports Microsoft.Reporting.WinForms
Imports System.Windows.Forms
Imports System.Reflection
Public Class relSinteticoProduto

#Region " Campos de instância "
    ' Campos de instância que possuem referências a classes externas mas que tem suas funcionalidades utilizadas na implementação desta.
    Private dsRelatorio As DataSet
    Private sProduto As String
    Private sLogoEmpresa As String
    Private sDataInicial As String
    Private sDataFinal As String
    Private iResumo As Integer
#End Region

#Region " Propriedades "

    ''' <summary>
    ''' Propriedade pública que recebe os dados do Relatorio.
    ''' </summary>    
    Property LogoEmpresa As String
        Get
            Return sLogoEmpresa
        End Get
        Set(ByVal value As String)
            sLogoEmpresa = value
        End Set
    End Property
    ''' <summary>
    ''' Propriedade pública que verifica se o usuário quer exibir o resumo ou não.
    ''' </summary>    
    Property Resumo As Integer
        Get
            Return iResumo
        End Get
        Set(ByVal value As Integer)
            iResumo = value
        End Set
    End Property



    ''' <summary>
    ''' Propriedade pública que recebe a data inicial.
    ''' </summary>  
    Property DtIni As String
        Get
            Return sDataInicial
        End Get
        Set(ByVal value As String)
            sDataInicial = value
        End Set
    End Property

    ''' <summary>
    ''' Propriedade pública que recebe a data final.
    ''' </summary>  
    Property DtFin As String
        Get
            Return sDataFinal
        End Get
        Set(ByVal value As String)
            sDataFinal = value
        End Set
    End Property



    ''' <summary>
    ''' Propriedade pública que recebe o número inicial da zona
    ''' </summary>
    Property pProduto As String
        Get
            Return sProduto
        End Get
        Set(ByVal value As String)
            sProduto = value
        End Set
    End Property

    ''' <summary>
    ''' Propriedade pública que recebe os dados do Relatorio.
    ''' </summary>    
    Property DtsRelatorio As DataSet
        Get
            Return dsRelatorio
        End Get
        Set(ByVal value As DataSet)
            dsRelatorio = value
        End Set
    End Property

#End Region
#Region " Métodos"
    Private Sub relSinteticoProduto_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Try

                'Variavel para alimentar o dataSource do report
                Dim rds As ReportDataSource = New ReportDataSource()

                'Alimenta dataSource
                rds.Value = DtsRelatorio.Tables(0)
                rds.Name = "dtsSinteticoProduto"

                'Informa ao Report que ele utilizar 
                Me.rptRelatorio.LocalReport.DataSources.Add(rds)

                'Exportar apenas para PDF.
                eliminarExportacao()

                'Carrega Parâmetros
                Dim parametros As New List(Of ReportParameter)()

            parametros.Add(New ReportParameter("sLogomarca", LogoEmpresa))
            parametros.Add(New ReportParameter("DatIni", DtIni))
            parametros.Add(New ReportParameter("DatFin", DtFin))
            parametros.Add(New ReportParameter("Resumo", Resumo))

                rptRelatorio.LocalReport.SetParameters(parametros)


                'Carrega Relatorio
                Me.rptRelatorio.RefreshReport()

            Catch ex As Exception
                MessageBox.Show("Ocorreu um erro ao gerar o Relatório de Movimentação. Verifique com o setor de T.I.", _
                                    "Courier - Módulo de Circulação.", _
                                    MessageBoxButtons.OK, _
                                    MessageBoxIcon.Information)
            End Try
    End Sub

    ''' <summary>
    ''' Método responsável por desabilitar a exportação do relatório para Word e Excel.
    ''' </summary>
    Public Sub eliminarExportacao()
        Dim renFormato As RenderingExtension
        For Each renFormato In rptRelatorio.LocalReport.ListRenderingExtensions
            If Trim(renFormato.LocalizedName) = "Excel" Or Trim(renFormato.LocalizedName) = "Word" Then
                Dim info As FieldInfo = renFormato.GetType().GetField("m_isVisible", BindingFlags.NonPublic Or BindingFlags.Instance)
                info.SetValue(renFormato, False)
            End If
        Next
    End Sub
#End Region
End Class